package com.demo.io;

import org.junit.jupiter.api.Test;

import java.io.File;
import java.io.IOException;

/**
 * @author wangning
 * @date 2023/12/14 16:45
 * @description
 */
public class GetPath {

    /**
     * 使用相对路径
     */
    @Test
    public void test01() {//
        File file = new File("io/src/main/java/com/demo/file/test.txt");
//        File file = new File("src/main/java/com/demo/file/test.txt");
        System.out.println(file.exists());
        System.out.println(System.getProperty("user.dir"));
    }

    /**
     * 绝对路径
     */
    @Test
    public void test02() {
//        File file = new File("E:\\my-project\\workspace\\java-demo\\io\\src\\main\\java\\com\\demo\\file\\test.txt");
        File file = new File("E:/my-project/workspace/java-demo/io/src/main/java/com/demo/file/test.txt");
        System.out.println(file.exists());
        System.out.println(System.getProperty("user.dir"));
    }

    @Test
    public void test03() {//this可以省略
        System.out.println(GetPath.class.getResource(""));//file:/E:/my-project/workspace/java-demo/io/target/classes/com/demo/io/
        System.out.println(this.getClass().getResource(""));//file:/E:/my-project/workspace/java-demo/io/target/classes/com/demo/io/
        System.out.println(getClass().getResource("/"));//file:/E:/my-project/workspace/java-demo/io/target/classes/com/demo/io/
    }

    @Test
    public void test04() {
        System.out.println(getClass().getResource("/file/test.txt"));
    }

    @Test
    public void path() throws IOException {
        // 获取当前项目下路径：方式一
        File file = new File("");
        String filePath = file.getCanonicalPath();
        // 输出：D:\MyCode\log\log4j2-java
        System.out.println(filePath);

        // 获取当前项目下路径：方式二
        // 输出：D:\MyCode\log\log4j2-java
        System.out.println(System.getProperty("user.dir"));

        // 获取类加载的根路径
        String path = this.getClass().getResource("/").getPath().substring(1);
        // 输出：D:/MyCode/log/log4j2-java/target/classes/
        System.out.println(path);

        // 获取当前类的所在工程路径
        String path1 = this.getClass().getResource("").getPath().substring(1);
        // 输出：D:/MyCode/log/log4j2-java/target/classes/com/gzl/cn/
        System.out.println(path1);

        // 获取类加载指定文件或者文件夹路径
        String path2 = this.getClass().getResource("/data/DataConvert.dll").getPath().substring(1);
        System.out.println(path2);

        //获取所有的类路径 包括jar包的路径
        System.out.println(System.getProperty("java.class.path"));
    }


}
